{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import rasterio\n",
    "import numpy as np\n",
    "import os\n",
    "from rasterstats import zonal_stats\n",
    "import geopandas as gpd\n",
    "import rasterio.features\n",
    "from shapely.geometry import shape\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "import fiona\n",
    "from rasterio.plot import show\n",
    "\n",
    "\n",
    "font_properties = {\n",
    "    'family': 'Times New Roman',  # Choose font family (e.g., 'sans-serif', 'serif', 'monospace')\n",
    "    'style': 'normal',  # Choose font style (e.g., 'normal', 'italic', 'oblique')\n",
    "    'weight': 'normal',   # Choose font weight (e.g., 'normal', 'bold', 'light')\n",
    "    'size': 12          # Font size\n",
    "}\n",
    "#Graph Dimensions\n",
    "x_dim, y_dim = 6, 5\n",
    "root_dir =\"path/to/the/location/of/this/folder\"\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Perform Batch Zonal Statistics for all Scenarios"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['No_Restrictions_SAT', 'NoRowCrops_or_MSG14_SAT']\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\Users\\twk54\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\pyogrio\\raw.py:196: RuntimeWarning: driver GPKG does not support open option DRIVER\n",
      "  return ogr_read(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['No_Restrictions_UT' 'No_Restrictions_SAT' 'No_Restrictions_Large'\n",
      " 'NoAg_UT' 'NoAg_SAT' 'NoAg_Large' 'NoMSG1_4_UT' 'NoMSG1_4_SAT'\n",
      " 'NoMSG1_4_Large' 'NoRowCrops_or_MSG14_UT' 'NoRowCrops_or_MSG14_SAT'\n",
      " 'NoRowCrops_or_MSG14_Large']\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>5</th>\n",
       "      <th>count</th>\n",
       "      <th>4</th>\n",
       "      <th>8</th>\n",
       "      <th>1</th>\n",
       "      <th>6</th>\n",
       "      <th>9</th>\n",
       "      <th>7</th>\n",
       "      <th>10</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.26</td>\n",
       "      <td>12.78</td>\n",
       "      <td>24.30</td>\n",
       "      <td>38.34</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.45</td>\n",
       "      <td>0.72</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1.89</td>\n",
       "      <td>0.63</td>\n",
       "      <td>0.09</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>10.44</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>38.25</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.27</td>\n",
       "      <td>27.54</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1.35</td>\n",
       "      <td>2.61</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>1.26</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.00</td>\n",
       "      <td>0.27</td>\n",
       "      <td>1.35</td>\n",
       "      <td>1.62</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1021</th>\n",
       "      <td>0.27</td>\n",
       "      <td>47.25</td>\n",
       "      <td>1.44</td>\n",
       "      <td>92.61</td>\n",
       "      <td>6.93</td>\n",
       "      <td>0.90</td>\n",
       "      <td>30.24</td>\n",
       "      <td>2.52</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3.06</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1022</th>\n",
       "      <td>26.64</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>112.32</td>\n",
       "      <td>17.28</td>\n",
       "      <td>1.17</td>\n",
       "      <td>58.86</td>\n",
       "      <td>6.12</td>\n",
       "      <td>0.9</td>\n",
       "      <td>1.17</td>\n",
       "      <td>0.18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1023</th>\n",
       "      <td>4.14</td>\n",
       "      <td>6.03</td>\n",
       "      <td>4.50</td>\n",
       "      <td>44.01</td>\n",
       "      <td>7.74</td>\n",
       "      <td>0.00</td>\n",
       "      <td>12.51</td>\n",
       "      <td>5.58</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3.51</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1024</th>\n",
       "      <td>0.00</td>\n",
       "      <td>4.68</td>\n",
       "      <td>0.00</td>\n",
       "      <td>21.33</td>\n",
       "      <td>9.54</td>\n",
       "      <td>0.63</td>\n",
       "      <td>4.23</td>\n",
       "      <td>2.25</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1025</th>\n",
       "      <td>29.61</td>\n",
       "      <td>32.13</td>\n",
       "      <td>0.00</td>\n",
       "      <td>298.35</td>\n",
       "      <td>20.34</td>\n",
       "      <td>0.00</td>\n",
       "      <td>190.53</td>\n",
       "      <td>13.32</td>\n",
       "      <td>0.0</td>\n",
       "      <td>12.42</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1026 rows × 11 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "          2      3      5   count      4     8       1      6    9      7  \\\n",
       "0      1.26  12.78  24.30   38.34   0.00  0.00    0.00   0.00  0.0   0.00   \n",
       "1      0.45   0.72   0.00    1.89   0.63  0.09    0.00   0.00  0.0   0.00   \n",
       "2     10.44   0.00   0.00   38.25   0.00  0.27   27.54   0.00  0.0   0.00   \n",
       "3      0.00   0.00   1.35    2.61   0.00  0.00    0.00   1.26  0.0   0.00   \n",
       "4      0.00   0.27   1.35    1.62   0.00  0.00    0.00   0.00  0.0   0.00   \n",
       "...     ...    ...    ...     ...    ...   ...     ...    ...  ...    ...   \n",
       "1021   0.27  47.25   1.44   92.61   6.93  0.90   30.24   2.52  0.0   3.06   \n",
       "1022  26.64   0.00   0.00  112.32  17.28  1.17   58.86   6.12  0.9   1.17   \n",
       "1023   4.14   6.03   4.50   44.01   7.74  0.00   12.51   5.58  0.0   3.51   \n",
       "1024   0.00   4.68   0.00   21.33   9.54  0.63    4.23   2.25  0.0   0.00   \n",
       "1025  29.61  32.13   0.00  298.35  20.34  0.00  190.53  13.32  0.0  12.42   \n",
       "\n",
       "        10  \n",
       "0     0.00  \n",
       "1     0.00  \n",
       "2     0.00  \n",
       "3     0.00  \n",
       "4     0.00  \n",
       "...    ...  \n",
       "1021  0.00  \n",
       "1022  0.18  \n",
       "1023  0.00  \n",
       "1024  0.00  \n",
       "1025  0.00  \n",
       "\n",
       "[1026 rows x 11 columns]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "102779.28000000001\n",
      "No_Restrictions_SAT\n"
     ]
    },
    {
     "data": {
      "image/png": "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TIGhoSG6d+8OGxsbDBgwAP7+/rC1tYW1tTVGjBgBT09PjvwgIiLSIToRKu7du4fu3bvj6dOnKFWqFBo1aoRTp06hVKlSAIAFCxbAwMAAHTt2hEqlgre3N5YuXarlqomIiOhVCiGE0HYR70NiYiJsbGygVCp5fwUREVEB5PccqpP3VBAREZH+YaggIiIiWTBUEBERkSwYKoiIiEgWDBVEREQkC4YKIiIikgVDBREREcmCoYKIiIhkwVBBREREsmCoICIiIlkwVBAREZEsGCqIiIhIFgwVREREJAuGCiIiIpIFQwURERHJgqGCiIiIZMFQQURERLJgqCAiIiJZMFQQERGRLBgqiIiISBYMFURERCQLhgoiIiKSBUMFERERyYKhgoiIiGTBUEFERESyYKggIiIiWTBUEBERkSwYKoiIiEgWDBVEREQkC4YKIiIikgVDBREREcmCoYKIiIhkwVBBREREsmCoICIiIlkwVBAREZEsGCqIiIhIFgwVREREJAuGCiIiIpIFQwURERHJgqGCiIiIZMFQQURERLJgqCAiIiJZMFQQERGRLBgqiIiISBYMFURERCQLhgoiIiKSBUMFERERyYKhgoiIiGTBUEFERESyYKggIiIiWTBUEBERkSwYKoiIiEgWDBVEREQkC50LFbNmzYJCocDo0aOlZampqfDz84OdnR0sLS3RsWNHxMfHa69IIiIiykGnQsWZM2ewbNky1KxZU2P5mDFjsHPnTmzatAlHjx7FgwcP0KFDBy1VSURERLnRmVCRnJwMX19fLF++HCVKlJCWK5VKrFixAr/88guaNm0Kd3d3rFq1CidPnsSpU6e0WDERERG9SmdChZ+fH77++ms0b95cY3lUVBTS09M1lletWhXOzs6IiIjIsz2VSoXExESNFxERERUdI20XAAAbNmzA2bNncebMmRzr4uLiYGJiguLFi2sst7e3R1xcXJ5tzpw5E9OmTZO7VCIiIsqD1q9UxMbGYtSoUfjjjz9gZmYmW7sBAQFQKpXSKzY2Vra2iYiIKCeth4qoqCg8evQIdevWhZGREYyMjHD06FEsWrQIRkZGsLe3R1paGp4/f66xX3x8PBwcHPJs19TUFNbW1hovIiIiKjpa7/5o1qwZLl26pLGsX79+qFq1Kr799ls4OTnB2NgY4eHh6NixIwDg2rVriImJgaenpzZKJiIi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QoeKoKAgVKxYMdd1vKeCiIjo41Poeypat26NGzduwNraGjY2NtJylUqFqKgopKamylakHHhPBVHueE8FEb1Nkd9TUaZMGTx58gTVqlWDgcH/XfBQq9WIiYkpbLNERESkpwodKvz8/GBubp7rnBT79u17p6KIiIhI/xQ6VNStWzfPdUlJSYVtloiIiPTUOz2lNDd79+7F+PHj5W6WiIiIdJwszyh//PgxQkJCsGLFCly/fr1Ib/wiIiIi3fROoWLfvn1Yvnw5du3ahYyMDHh5eWHgwIHYu3evXPURERGRnihwqIiNjcWKFSuwatUq3Lt3DxUqVICbmxu2bdsGJycnAMBXX30le6FERESk2/J9T8WmTZvQqlUrfPLJJ/jpp59Qt25d7NmzB7du3YKbm5sUKACgevXqRVIsERER6a58X6kQQiA9PR1WVlbYsGEDWrZsKa3jPRRERESU7ysVXbp0QXh4OE6fPo2DBw+ic+fO2LRpEzIzM4uyPiIiItITBR5SWqlSJcyZMwfr169HZmYmevXqhfPnz+POnTvSNhEREbIWSURERLqv0M/+eNX169exfPly3Lp1C40aNcL27dtx7NgxOeqTDZ/9QZQ7PvuDiN4mv+dQWSa/qly5MubOnYvQ0FBYWFjg6tWrcjRLREREekSWya+ymZqaYvDgwShevLiczRIREZEekH2abgDo2rVrUTRLREREOqxIQgURERF9fBgqiIiISBYMFURERCQLhgoiIiKSBUMFERERyYKhgoiIiGTBUEFERESyYKggIiIiWTBUEBERkSwYKoiIiEgWDBVEREQkC4YKIiIikgVDBREREcmCoYKIiIhkwVBBREREsmCoICIiIlkwVBAREZEsGCqIiIhIFgwVREREJAuGCiIiIpIFQwURERHJgqGCiIiIZMFQQURERLJgqCAiIiJZMFQQERGRLBgqiIiISBY6ESpmzpyJzz77DFZWVihdujS++eYbXLt2TWOb1NRU+Pn5wc7ODpaWlujYsSPi4+O1VDERERG9TidCxdGjR+Hn54dTp07hr7/+Qnp6Olq2bImUlBRpmzFjxmDnzp3YtGkTjh49igcPHqBDhw5arJqIiIhepRBCCG0X8brHjx+jdOnSOHr0KLy8vKBUKlGqVCmsX78enTp1AgD8999/qFatGiIiItCgQYMcbahUKqhUKul9YmIinJyc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",
      "text/plain": [
       "<Figure size 600x500 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>5</th>\n",
       "      <th>count</th>\n",
       "      <th>7</th>\n",
       "      <th>6</th>\n",
       "      <th>9</th>\n",
       "      <th>8</th>\n",
       "      <th>10</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.71</td>\n",
       "      <td>1.71</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.71</td>\n",
       "      <td>1.71</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2.34</td>\n",
       "      <td>2.34</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2.07</td>\n",
       "      <td>2.07</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.44</td>\n",
       "      <td>1.53</td>\n",
       "      <td>0.09</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8663</th>\n",
       "      <td>1.62</td>\n",
       "      <td>1.62</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8664</th>\n",
       "      <td>0.00</td>\n",
       "      <td>5.58</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>5.58</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8665</th>\n",
       "      <td>0.00</td>\n",
       "      <td>3.69</td>\n",
       "      <td>0.00</td>\n",
       "      <td>2.88</td>\n",
       "      <td>0.81</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8666</th>\n",
       "      <td>0.00</td>\n",
       "      <td>2.61</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>2.61</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8667</th>\n",
       "      <td>0.27</td>\n",
       "      <td>4.50</td>\n",
       "      <td>0.00</td>\n",
       "      <td>2.61</td>\n",
       "      <td>1.62</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>8668 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "         5  count     7     6     9    8   10\n",
       "0     1.71   1.71  0.00  0.00  0.00  0.0  0.0\n",
       "1     1.71   1.71  0.00  0.00  0.00  0.0  0.0\n",
       "2     2.34   2.34  0.00  0.00  0.00  0.0  0.0\n",
       "3     2.07   2.07  0.00  0.00  0.00  0.0  0.0\n",
       "4     1.44   1.53  0.09  0.00  0.00  0.0  0.0\n",
       "...    ...    ...   ...   ...   ...  ...  ...\n",
       "8663  1.62   1.62  0.00  0.00  0.00  0.0  0.0\n",
       "8664  0.00   5.58  0.00  0.00  5.58  0.0  0.0\n",
       "8665  0.00   3.69  0.00  2.88  0.81  0.0  0.0\n",
       "8666  0.00   2.61  0.00  0.00  2.61  0.0  0.0\n",
       "8667  0.27   4.50  0.00  2.61  1.62  0.0  0.0\n",
       "\n",
       "[8668 rows x 7 columns]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "98964.81000000001\n",
      "NoRowCrops_or_MSG14_SAT\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 600x500 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "site_types = ['SAT']#The site types that you would like graphs of. (possible options: 'SAT', 'Lg', 'FA')\n",
    "desired_scenarios = ['No_Restrictions', 'NoRowCrops_or_MSG14' ] # The scenarios that you would like to produce graphs of\n",
    "all_combinations = []\n",
    "for type in site_types:\n",
    "    for scenario in desired_scenarios:\n",
    "        combination = f'{scenario}_{type}'\n",
    "        all_combinations.append(combination)\n",
    "print(all_combinations)\n",
    "# Load data\n",
    "reclassified_raster_path = f'{root_dir}/Data/Rasters/MSG1-10.tif'\n",
    "gdb_path = fr\"{root_dir}\\Data\\INFEWS_Solar.gpkg\"\n",
    "feature_class_name = \"Potential_Future_Sites_new\"\n",
    "layers = fiona.listlayers(gdb_path)\n",
    "\n",
    "# Load the feature class from the geodatabase\n",
    "polygons = gpd.read_file(f'{gdb_path}', layer=feature_class_name, driver='OpenFileGDB')\n",
    "# Get unique scenarios\n",
    "unique_scenarios = polygons[\"Scenario and Type\"].unique()\n",
    "print(unique_scenarios)\n",
    "raster = rasterio.open(reclassified_raster_path)\n",
    "\n",
    "# Define all possible soil types (Mineral Soil Groups)\n",
    "all_soil_types = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n",
    "\n",
    "# Create a master DataFrame to store results for all scenarios\n",
    "master_df = pd.DataFrame()\n",
    "\n",
    "for scenario in unique_scenarios:\n",
    "    if scenario not in all_combinations:\n",
    "        continue\n",
    "    sql_query = f'\"Scenario and Type\" = \\'{scenario}\\'' \n",
    "    scenario_polygons = gpd.read_file(f'{gdb_path}', layer=feature_class_name, where=sql_query)\n",
    "    # Check if scenario_polygons are valid\n",
    "    if not scenario_polygons.is_valid.all():\n",
    "        scenario_polygons = scenario_polygons.buffer(0)  # Fix invalid geometries\n",
    "\n",
    "    # Calculate zonal statistics\n",
    "    stats = zonal_stats(scenario_polygons, reclassified_raster_path, stats=\"count\", categorical=True, nodata=15)\n",
    "    stats_df = pd.DataFrame(stats).fillna(0)  # Convert to DataFrame and replace NaN with 0\n",
    "    stats_df.columns = [str(col) for col in stats_df.columns]\n",
    "    stats_df.rename(columns={col: int(col) for col in stats_df.columns if col.isdigit()}, inplace=True)\n",
    "    \n",
    "    # Convert cell counts to hectares\n",
    "    #cell_size_ha = (raster.res[0] * raster.res[1]) / 10000  # Calculate hectares per cell based on raster resolution\n",
    "    cell_size_ha = 900 / 10000\n",
    "    stats_df *= cell_size_ha\n",
    "\n",
    "  \n",
    "    valid_cover_types = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n",
    "\n",
    "    # Extract the valid land cover types from cover_df\n",
    "    # Filter the columns in scenario_polygons based on these valid cover types\n",
    "    filtered_columns = [col for col in stats_df.columns if col in valid_cover_types]\n",
    "\n",
    "    # Sum the areas for each valid cover type\n",
    "    area_sums = (stats_df[filtered_columns].sum()) \n",
    "    display(stats_df)\n",
    "    # Ensure area_sums includes all possible soil types\n",
    "    area_sums = area_sums.reindex(all_soil_types, fill_value=0)\n",
    "\n",
    "    # Sort the area sums based on the index (mineral soil group number)\n",
    "    area_sums = area_sums.sort_index()\n",
    "    total_area = area_sums.sum()\n",
    "    print(total_area)\n",
    "    graph_data_percent = (area_sums / total_area) * 100\n",
    "    area_sums=graph_data_percent\n",
    "    # Paths for reading and saving\n",
    "    graph_name = f\"MSG1_10_{scenario}\"\n",
    "    graph_path = fr'{root_dir}/Outputs/Figures/{graph_name}.jpg'\n",
    "\n",
    "    # Plot the bar graph\n",
    "    plt.figure(figsize=(x_dim, y_dim))\n",
    "    area_sums.plot(kind='bar', color='black')\n",
    "\n",
    "    plt.xlabel('Mineral Soil Group', fontdict=font_properties)\n",
    "    plt.ylabel('Area (ha)', fontdict=font_properties)\n",
    "    plt.xticks(rotation=30, ha='right', fontproperties=font_properties)\n",
    "    plt.ylim(0, 60)\n",
    "    \n",
    "    # Add labels to each bar\n",
    "    for i, value in enumerate(area_sums):\n",
    "        plt.text(i, value + 0.5, f'{value:,.1f}%', ha='center', va='bottom', fontdict=font_properties)\n",
    "\n",
    "    # Save the plot as an image file\n",
    "    plt.savefig(graph_path, dpi=300, format='jpg', bbox_inches='tight')\n",
    "    print(scenario)\n",
    "    plt.show()\n",
    "    # Close the plot to avoid overlap in the next iteration\n",
    "    plt.close()\n",
    "\n",
    "    # Create a DataFrame to organize the results\n",
    "    results = {\n",
    "        'Scenario': scenario,\n",
    "        'Cover': area_sums,\n",
    "    }\n",
    "\n",
    "    df_results = pd.DataFrame(results)\n",
    "\n",
    "    # Append the results to the master DataFrame\n",
    "    master_df = pd.concat([master_df, df_results], ignore_index=True)\n",
    "\n",
    "# Save the master DataFrame to a CSV file\n",
    "#output_csv = fr\"{root_dir}\\Tables\\Results\\Future_Soils_Summary.xlsx\"\n",
    "#master_df.to_excel(output_csv, index=False)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Merge 4 Selected Graphs into a Single Panel"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "from PIL import Image, ImageDraw, ImageFont\n",
    "import sys\n",
    "site_type='SAT'\n",
    "# Example dictionary with text labels for each image\n",
    "selected = {\n",
    "    f'MSG1_10_No_Restrictions_{site_type}': 'No Restrictions',\n",
    "\n",
    "    f'MSG1_10_NoRowCrops_or_MSG14_{site_type}': 'No Row Crops \\nor \\nMSG 1-4 Soils',    \n",
    "}\n",
    "\n",
    "\n",
    "base_path = f'{root_dir}/Outputs/Figures'\n",
    "image_paths = [fr'{base_path}\\{key}.jpg' for key in selected.keys()]\n",
    "\n",
    "def merge_images(image_paths, text_labels, output_path):\n",
    "    if len(image_paths) not in [2, 4, 6]:\n",
    "        raise ValueError(\"The number of images must be either 2, 4, or 6\")\n",
    "\n",
    "    # Open all images\n",
    "    images = [Image.open(path) for path in image_paths]\n",
    "\n",
    "    # Determine the maximum width and height of the images\n",
    "    max_width = max(image.width for image in images)\n",
    "    max_height = max(image.height for image in images)\n",
    "\n",
    "    # Resize images by adding white padding to smaller images\n",
    "    padded_images = []\n",
    "    for image in images:\n",
    "        new_image = Image.new('RGB', (max_width, max_height), (255, 255, 255))\n",
    "        new_image.paste(image, ((max_width - image.width) // 2, (max_height - image.height) // 2))\n",
    "        padded_images.append(new_image)\n",
    "\n",
    "    # Add text to the images\n",
    "    font = ImageFont.truetype(fr\"{root_dir}\\msc\\Times New Roman.ttf\", 86)\n",
    "    for image, text in zip(padded_images, text_labels):\n",
    "        draw = ImageDraw.Draw(image)\n",
    "        draw.text((210, 140), text, fill=\"black\", font=font)\n",
    "\n",
    "    # Determine the size of the output image\n",
    "    if len(image_paths) == 2:\n",
    "        total_width = max_width\n",
    "        total_height = 2 * max_height\n",
    "    elif len(image_paths) == 4:\n",
    "        total_width = 2 * max_width\n",
    "        total_height = 2 * max_height\n",
    "    else:  # len(image_paths) == 6\n",
    "        total_width = 3 * max_width\n",
    "        total_height = 2 * max_height\n",
    "\n",
    "    # Create a blank canvas\n",
    "    merged_image = Image.new('RGB', (total_width, total_height), (255, 255, 255))\n",
    "\n",
    "    # Paste the images onto the canvas\n",
    "    for i, image in enumerate(padded_images):\n",
    "        if len(image_paths) == 2:\n",
    "            x = 0\n",
    "            y = i * max_height\n",
    "        elif len(image_paths) == 4:\n",
    "            x = (i % 2) * max_width\n",
    "            y = (i // 2) * max_height\n",
    "        else:  # len(image_paths) == 6\n",
    "            x = (i % 3) * max_width\n",
    "            y = (i // 3) * max_height\n",
    "        merged_image.paste(image, (x, y))\n",
    "\n",
    "    # Save the merged image\n",
    "    merged_image.save(output_path)\n",
    "\n",
    "if __name__ == \"__main__\":\n",
    "    text_labels = list(selected.values())\n",
    "    output_path = fr'{root_dir}/Outputs/Figures/MSG_{site_type}_Panel.jpg'\n",
    "    merge_images(image_paths, text_labels, output_path)\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Same Process but for the existing sites"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\Users\\twk54\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\pyogrio\\raw.py:196: RuntimeWarning: driver GPKG does not support open option DRIVER\n",
      "  return ogr_read(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3677.9399999999996\n"
     ]
    },
    {
     "data": {
      "image/png": "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wYPw8PDA3bt34ejoCHd3d62Xra2tpv35sRC67urw8vLCtWvXAADJycl45513KvegiJ7BKxRERC9BXFwcduzYodX28OFDpKSklPlKQkl3dfj5+eGPP/5AWFgYrly5gqVLl0qum0hfCiGEMHQRlS0rKwsODg5QKpWwt7c3dDmVSqFQVNq+K/unItfa5Vo3IN/a5Vo3kRzpew5llwcRERFJxkBBREREkjFQEBERkWQMFERERCQZAwURERFJxkBBREREkjFQEBERkWQMFERERCQZAwURERFJxkBBREREkvFZHkRELxGnDadXFa9QEBERkWQMFERERCQZAwURERFJxkBBREREkjFQEBERkWQMFERERCQZAwURERFJxkBBREREkjFQEBERkWQMFERERCQZAwUREb2SMjMz4ezsjPj4+BLXOXDgAPr374/Ro0fj3//+N65evapZlpeXh5EjR2L69On46KOPcP/+/WLbnz9/HhMmTKiM8mWHgYKIiF5JoaGhuHfvXonLL1y4gJEjR2LVqlVYvnw5+vfvjw8++ADZ2dkAgOjoaDx+/BgzZsyAi4sLZsyYobW9SqXCjBkzMGvWrEo9DrlgoCAiolfOsWPHUFhYWOo6ERER6NKlC+zs7AAAQ4YMgVKpRExMDAAgPj4erq6uAAA3NzccOXJEa/vIyEh89tlnsLW1rYQjkB8GCiIieqU8efIECxYswOTJk0tdLz4+Hk5OTpr35ubm8PDwwJ49ewAA1tbWmlCiUqlgZWWlWff8+fNIT09Hp06dKuEI5ImBgoiIXilz5szB+PHjYWlpWep6Dx48QHp6ulZbjRo18PfffwMABgwYgJMnTwIAEhMT4ePjA4BdHSUxM3QBREREFeXKlStIS0tDhw4dkJKSUuq6jRo1wvHjxyGEgEKhAADk5uaiWrVqAIB+/fohJycH8+fPh4eHB8aMGQOAXR0lYaAgIqJXxpdffomlS5fqte7YsWMxatQoxMTEIDAwEKdPn8bJkyfx7rvvatYZNmyY1jbPd3WsW7cOqampsLOzw+eff64JJq8jBgoiInolrF27Fj169ICjo6Ne63/66afIzc3FihUrsG/fPnTr1g137txB//79da5f1NWxevVqAMC2bdvwww8/ID4+HkOHDkVUVBQmTpxYYccjNxxDQUREr4Q1a9ZgyJAhUCgUUCgUaNiwIQDg/fff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Q+Hl5VVsvyXd1fH111/jxo0bmDZtGqytrREUFPRSjpMq2MsZ0mFYLxpQcufOHTFv3jyRnp4uhBDi9u3b4u233xYZGRlCCCHWrl0r2rdvL/Ly8rS2O3DggAAgrly5UuLnPjvwqMioUaPE5MmThRBC+Pj4iIiICEnH9yzIePCRXGuXa91yrl2udcu9drnidy4NB2WWQVnSeJETJ05onnY6f/58nD9/vth+mcaJiOh1oRBCCEMXUdmysrLg4OAApVL5yj8orDKfflfZPxW51i7XugH51i7XugF51y5X/M6l0fccyisUREREJBkDBREREUnGQEFERESSMVAQERGRZAwUREREJBkDBREREUnGQEFERESSMVAQERGRZLqfLUtERPQMTg5FL8IrFERERCQZr1CUgGmciIhIf7xCQURERJIxUBAREZFkDBREREQkGQMFERERScZAQURERJIxUBAREZFkDBREREQkGQMFERERScZAQURERJIxUBAREZFkDBREREQkGQMFERERScZAQURERJIxUBAREZFkDBREREQkGQMFERERScZAQURERJIxUBAREZFkDBREREQkGQMFERGRkfj111/Rv39/jB07FhMmTIBKpSp1/aNHj8LLywvx8fFa7Xl5eRg5ciSmT5+Ojz76CPfv3y+27fnz5zFhwoQKq52BgoiIyAj89ddf8Pf3x7Jly7BkyRKo1WpMmjSpxPWPHTuGtWvX4tixY8WWRUdH4/Hjx5gxYwZcXFwwY8YMreUqlQozZszArFmzKqx+BgoiIiIj8MUXX6BLly6oXr06AMDf3x+LFy9GSkqKzvXbt29fYuCIj4+Hq6srAMDNzQ1HjhzRWh4ZGYnPPvsMtra2FVY/AwUREZGBZWVl4cCBA2jTpo2mzd3dHUIIbN26tcTtrKysdLZbW1ujsLAQwNOrEc+ud/78eaSnp6NTp04VVP1TDBREREQGdubMGahUKjg5OWnarKysYG9vjzNnzpR5fwMGDMDJkycBAImJifDx8QFQOV0dRcwqfI9ERERUJunp6QAAR0dHrXY7OztkZGSUeX/9+vVDTk4O5s+fDw8PD4wZMwZA5XR1FGGgICIiMjCFQgEAqFKlila7Wq2Gubl5ufY5bNgwrffPd3WsW7cOqampsLOzw+eff66pobzY5UFERGRgtWvXBgAolUqt9pycHNSoUUPy/p/v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LFmyBD4+Pujbt69mu/z8fK1t8/LycPHiRfz+++84dOgQDhw4AKVSid9//x2ZmZmafT9bx/O2b9+uNceGWq3Gpk2b8NFHH6FevXpwcXHBiBEj8P333yMzMxMA8Ndff0GlUmHEiBElHq8+nx0TE4Nu3brB398fv//+u9YypVIJAFpjVHR9B9OnT8exY8c02+fm5uLgwYOaMRQ1a9aEra0tNm7ciIsXL2L+/Pn4+++/kZycrNXdkpSUpPnfmzdvRosWLdC7d+8SayeSDQMPCiV67f3+++/C399fODk5iR9++EE8fPhQCCHE5s2bxY8//iiEECIrK0usWrVKODo6CgBi1qxZ4r///a84efKkaNmypTA1NRXLly8XN27cEB999JEAIMaNGydSU1PFd999J8zMzIS7u7tISEgQQghx/vx54eXlJaysrETbtm1FYmKiEOLpXQ8tW7YUAMSXX34plEqlEEKIa9euiebNm4saNWqImTNnip9//lnY29uLhQsXiszMTPH5558LAMLPz08kJycXO8aCggIBQAAQjRo1Et7e3uL9998XoaGh4tGjR5r18vLyxLhx40Tr1q3F6NGjRUBAgLhx44ZmeUxMjDAxMRHu7u7i5MmTIjU1Vfj5+QkA4vPPPxe3bt0q8XsuLCwU69atE126dBE+Pj7i008/Ff379xc9e/YUmzZtEmq1WqhUKhEdHS1MTEyEq6ur2Llzp9Y+YmJiRMuWLcWIESPE0KFDi93VsnLlSmFvby9atmwpzpw5I7p16yaGDh2q+X7r168v3nvvPRESEiJCQkJEv379RGpqql6/EyJjpxDi/3cOEhFRpWrQoAGGDRuGr776ytClEFU4dnkQERGRZAwUREQviUql0pqxlOhVwkBBRFTJsrOzMX/+fNy5cwc///wzjhw5YuiSiCocx1AQERGRZLxCQURERJIxUBAREZFkDBREREQkGQMFERERScZAQURERJIxUBAREZFkDBREREQkGQMFERERScZAQURERJL9P03Vu/jLTXocAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 600x500 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import geopandas as gpd\n",
    "import rasterio\n",
    "from rasterstats import zonal_stats\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "import os\n",
    "import fiona\n",
    "\n",
    "# Load data\n",
    "reclassified_raster_path = fr'{root_dir}\\Data\\Rasters\\MSG1-10.tif'\n",
    "gdb_path = fr\"{root_dir}\\Data\\INFEWS_Solar.gpkg\"\n",
    "feature_class_name = \"Detected_Sites\"\n",
    "\n",
    "# Load the feature class from the geodatabase\n",
    "polygons = gpd.read_file(f'{gdb_path}', layer=feature_class_name, driver='OpenFileGDB')\n",
    "polygons = polygons.explode(index_parts=False).reset_index(drop=True)\n",
    "\n",
    "# Open the raster file\n",
    "with rasterio.open(reclassified_raster_path) as raster:\n",
    "    cell_size_ha = (raster.res[0] * raster.res[1]) / 10000  # Calculate hectares per cell based on raster resolution\n",
    "\n",
    "# Calculate zonal statistics\n",
    "stats = zonal_stats(polygons, reclassified_raster_path, stats=\"count\", categorical=True, nodata=raster.nodata)\n",
    "stats_df = pd.DataFrame(stats).fillna(0)\n",
    "\n",
    "# Convert cell counts to hectares\n",
    "stats_df *= cell_size_ha\n",
    "\n",
    "# Define the color palette for the gradient\n",
    "cmap = sns.color_palette(\"RdYlGn\", n_colors=10)\n",
    "\n",
    "# Create a dictionary to map each cover type to a color\n",
    "cover_type_colors = {cover_type: cmap[i] for i, cover_type in enumerate(range(10, 0, -1))}\n",
    "\n",
    "# Extract the valid land cover types\n",
    "valid_cover_types = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n",
    "\n",
    "# Sum the areas for each valid cover type\n",
    "area_sums = stats_df[valid_cover_types].sum()  # Convert to thousands of hectares\n",
    "total_area = area_sums.sum()\n",
    "print(total_area)\n",
    "graph_data_percent = (area_sums / total_area) * 100\n",
    "area_sums=graph_data_percent\n",
    "# Paths for reading and saving\n",
    "graph_name = \"MSG1_10_Existing\"\n",
    "graph_path = fr'{root_dir}/Outputs/Figures/{graph_name}.jpg'\n",
    "\n",
    "# Plot the bar graph\n",
    "plt.figure(figsize=(x_dim, y_dim))\n",
    "area_sums.plot(kind='bar', color='k')\n",
    "\n",
    "plt.xlabel('Mineral Soil Group', fontproperties=font_properties)\n",
    "plt.ylabel('Area (ha)', fontproperties=font_properties)\n",
    "plt.xticks(rotation=0, ha='right', fontproperties=font_properties)\n",
    "plt.yticks(fontproperties=font_properties)\n",
    "\n",
    "\n",
    "# Add labels to each bar\n",
    "for i, value in enumerate(area_sums):\n",
    "    plt.text(i, value + 0.5, f'{value:,.1f}%', ha='center', va='bottom', fontproperties=font_properties)\n",
    "\n",
    "# Adjust y-axis limit to add padding\n",
    "plt.ylim(0, area_sums.max() * 1.1)  # Add 10% padding to the top\n",
    "\n",
    "# Save the plot as an image file\n",
    "plt.savefig(graph_path, dpi=300, format='jpg', bbox_inches='tight')\n",
    "plt.show()\n",
    "plt.close()  # Close the figure to avoid overlap in the next iteration\n",
    "\n",
    "# Save the master DataFrame to a CSV file\n",
    "output_csv = fr\"{root_dir}/Data/Tables/Outputs/Existing_sites_Soils_Summary.xlsx\"\n",
    "area_sums.to_excel(output_csv, index=True, header=[\"Area (ha)\"])\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
